package cm.com.carlamanda.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import cm.com.carlamanda.dao.ModuleDAO;
import cm.com.carlamanda.domain.Module;
import cm.com.carlamanda.domain.Page;
import cm.com.carlamanda.dto.ModuleDto;
import cm.com.carlamanda.service.ModuleService;
import cm.com.carlamanda.util.StringUtil;

@Service
public class ModuleServiceImpl implements ModuleService {
    @Autowired
    private ModuleDAO moduleDao;
    
    @Override
    public Module get(Module module) {
        return moduleDao.get(module);
    }

    @Override
    public void update(Module module) {
        moduleDao.update(module);
    }

    @Override
    public void add(Module module) {
        if(StringUtil.isEmpty(module.getId())){
            module.setId(UUID.randomUUID().toString());
        }
        moduleDao.insert(module);
    }

    @Override
    public void del(Module module) {
        moduleDao.del(module);
    }

    @Override
    public List<Module> search(Module module,Page page) {
        Map<String,Object> map = new HashMap<String,Object>();
        map.put("name", module.getName());
        map.put("description", module.getDescription());
        map.put("projectId", module.getProjectId());
        map.put("projectName", module.getProjectName());
        map.put("startPos", page.getStartPos());
        map.put("endPos", page.getEndPos());
        map.put("sortColumn", page.getSortColumn());
        map.put("sortAsc", page.getSortAsc());
        int count =moduleDao.searchModuleCount(map);
        page.setTotalCount(count);
        page.setTotalPage(count);
        return moduleDao.search(map);
    }

}
